#pragma once

#include <vector>
#include <map>
#include "Subject.h"
#include "HashedString.h"
#include "Pointer.h"
#include "Vector3D.h"

namespace Pathing
{
	class Waypoint
	{
	public:
		typedef std::vector<Pointer<Waypoint>> Vector_t;
		typedef std::map<HashedString, Vector_t> GroupMap_t;
		typedef std::pair<HashedString, Vector_t> GroupPair_t;

		Maths::Vector3D Location();
		void Location( Maths::Vector3D& location );
		Subject<Maths::Vector3D>& getLocation();
		float Radius();
		void Radius( float radius );
	protected:
		Subject<Maths::Vector3D> m_location;
		float m_radius;
	};
};